package com.team06.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Dfue {
    // META 节点
    private String metaSnDR;
    private String metaRCVR;
    private int metaSEQN;
    private String metaDDTM;
    private String metaTYPE;
    private String metaSTYP;

    // DFLT 节点
    private String dfltFLID;
    private String dfltAFID;
    private String dfltFFID;
    private String dfltFIDE;
    private String dfltAWCD;
    private String dfltFLNO;
    private String dfltFEXD;
    private String dfltFIMD;
    private String dfltFLIO;
    private String dfltFLTK;
    private String dfltFATT;
    private String dfltPATT;
    private String dfltMFID;
    private String dfltMFFI;
    private String dfltCFTP;
    private String dfltCFNO;
    private String dfltSTAT;
    private String dfltABST;
    private String dfltABRS;
    private String dfltISTA;
    private String dfltIAST;
    private String dfltIARS;
    private String dfltMSTA;
    private String dfltMABS;
    private String dfltMABR;
    private String dfltMIST;
    private String dfltMIAS;
    private String dfltMIAR;
    private String dfltBORT;
    private String dfltMBOR;
    private String dfltTBRT;
    private String dfltMTBR;
    private String dfltLBDT;
    private String dfltMLBD;
    private String dfltPOKT;
    private String dfltMPOK;
    private String dfltAPOT;
    private String dfltDETT;
    private String dfltDRTT;
    private String dfltDELT;
    private String dfltDRLT;
    private String dfltVIP;
    private String dfltPAST;
    private String dfltCONT;
    private String dfltPROX;

    // AIRL 节点
    private List<FlightSegment> flightSegments;

    // GTLS 节点
    private GtlsGate gtlsGate;

    // STLS 节点
    private StlsStnd stlsStnd;

    // TMCD 节点
    private String dfltTmcdNmcd;
    private String dfltTmcdJmcd;

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public static class FlightSegment {
        private String segmentType; // DEPARTURE, TRANSIT, ARRIVAL
        private String apno;        // 航段序号
        private String apcod;       // 机场代码
        private String fptt;        // 计划起飞时间
        private String fett;        // 预计起飞时间
        private String frtt;        // 实际起飞时间
        private String fplt;        // 计划降落时间
        private String felt;        // 预计降落时间
        private String frlt;        // 实际降落时间
        private String apat;       // 机场属性
    }

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public static class GtlsGate {
        private String gtno;
        private String id;
        private String code;
        private String gtat;
        private String estr;
        private String eend;
        private String rstr;
        private String rend;
        private String btsc;
    }

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public static class StlsStnd {
        private String stno;
        private String code;
        private String estr;
        private String eend;
        private String rstr;
        private String rend;
        private String cssi;
        private String btsc;
    }
}
